Java 需要用到 poi 两个依赖包,Maven如下:
org.apache.poi
poi
5.0.0
org.apache.poi
poi-ooxml
5.0.0
Java后端实现
所有的代码都在这个 Controller 中,在实际的场景中,最好进行封装,比如:表格样式、表格的数据收集与整理等等。
import org.apache.poi.hssf.util.HSSFColor;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.OutputStream;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;
/**
* @author 江湖人称小程
*/
@RestController
@RequestMapping("export")
public class ExportExcelController {
@GetMapping("data")
public void exportData(HttpServletResponse response) {
// 1. 创建工作空间
Workbook workbook = new XSSFWorkbook(); // .xlsx 用 XSSFWorkbook
// Workbook workbook = new HSSFWorkbook(); // .xls 用 HSSFWorkbook
// 2. 创建工作表
Sheet sheet = workbook.createSheet("学生信息");
// 2.1 创建标题行(第一行)
Row headerRow = sheet.createRow(0);
/* 3. 定义一个字体(建议将定义字体这段代码,提取出来进行封装,后续可以定义各式各样的的字体) */
// 3.1 创建字体
Font headerFont = workbook.createFont();
// 3.2 14号大小
headerFont.setFontHeightInPoints((short) 14);
// 3.3 黑色字体
headerFont.setColor(HSSFColor.HSSFColorPredefined.BLACK.getIndex());
// 3.4 宋体
headerFont.setFontName("宋体");
/* 4. 声明样式 CellStyle,并设置 */
// 4.1 创建 style
CellStyle style = workbook.createCellStyle();
// 4.2 将字体设置进 style 对象中
style.setFont(headerFont);
// 4.3 水平和垂直居中
style.setAlignment(HorizontalAlignment.CENTER);
style.setVerticalAlignment(VerticalAlignment.CENTER);
/* 设置列宽和表头样式 */
String[] headers= {"姓名", "性别", "年龄", "班级" , "联系方式" , "家庭住址"};
for (int i = 0; i |